Skip to content

9.9 删除操作

功能移除声明以下内容包含 Exists 单词的在 Furion 2.6.0 + 版本中已移除。

9.9.1 删除一个实体(不立即提交)

// ==== 同步操作 ====  

// 示例一  
repository.Delete(user);  

// 示例二  
user.Delete();  

// 示例三  
repository.ChangeEntityState(user, EntityState.Deleted);  

// 示例四  
repository.Entities.Remove(user);  

// ==== 异步操作 ====  

// 示例一  
await repository.DeleteAsync(user);  

// 示例二  
await user.DeleteAsync();  

9.9.2 删除一个实体(立即提交)

// ==== 同步操作 ====  

// 示例一  
repository.DeleteNow(user);  

// 示例二  
user.DeleteNow();  

// ==== 异步操作 ====  

// 示例一  
await repository.DeleteNowAsync(user);  

// 示例二  
await user.DeleteNowAsync();  

9.9.3 根据主键删除记录(不立即提交)

// ==== 同步操作 ====  

// 示例一  
repository.Delete(1);  

// 示例二  
user.Delete(1);  

// ==== 异步操作 ====  

// 示例一  
await repository.DeleteAsync(1);  

// 示例二  
await user.DeleteAsync(1);  

9.9.4 根据主键删除记录(立即提交)

// ==== 同步操作 ====  

// 示例一  
repository.DeleteNow(1);  

// 示例二  
user.DeleteNow(1);  

// ==== 异步操作 ====  

// 示例一  
await repository.DeleteNowAsync(1);  

// 示例二  
await user.DeleteNowAsync(1);  

9.9.5 数据存在才根据主键删除(不立即提交)

功能移除声明以下内容已在 Furion 2.6.0 + 版本移除。

// ==== 同步操作 ====  

// 示例一  
repository.DeleteExists(1);  

// 示例二  
user.DeleteExists(1);  

// ==== 异步操作 ====  

// 示例一  
await repository.DeleteExistsAsync(1);  

// 示例二  
await user.DeleteExistsAsync(1);  

9.9.6 数据存在才根据主键删除(立即提交)

功能移除声明以下内容已在 Furion 2.6.0 + 版本移除。

// ==== 同步操作 ====  

// 示例一  
repository.DeleteExistsNow(1);  

// 示例二  
user.DeleteExistsNow(1);  

// ==== 异步操作 ====  

// 示例一  
await repository.DeleteExistsNowAsync(1);  

// 示例二  
await user.DeleteExistsNowAsync(1);  

小知识所有带 Now 结尾的表示立即提交到数据库,也就是立即调用 SaveChangesSaveChangesAsync

9.9.7 假删除/软删除

功能移除声明以下内容在 Furion 2.10 + 版本中已移除。

Furion 框架中可以通过 [FakeDelete] 特性标记假删除特性,如:

9.9.7.1 添加 [FakeDelete] 标记

public class Model: IEntity  
{  
    [FakeDelete(true)]  // 设置假删除的值  
    public bool IsDeleted { get; set; }  
}  

[FakeDelete][FakeDelete] 属性拥有带一个参数的构造函数,这个参数是假删除的值

9.9.7.2 假删除使用

// ==== 同步操作 ====  

// 示例一  
repository.FakeDelete(entity);  

// 示例二  
repository.FakeDeleteNow(entity);  

// 示例三  
repository.FakeDelete(1);  

// 示例四  
repository.FakeDeleteNow(1);  

// 示例五  
entity.FakeDelete();  

// 示例六  
repository.UpdateInclude(user, u => u.IsDeleted);  

// ==== 异步操作 ====  

// 示例一  
await repository.FakeDeleteAsync(entity);  

// 示例二  
await repository.FakeDeleteNowAsync(entity);  

// 示例三  
await repository.FakeDeleteAsync(1);  

// 示例四  
await repository.FakeDeleteNowAsync(1);  

// 示例五  
await entity.FakeDeleteAsync();  

// 示例六  
await repository.UpdateIncludeAsync(user, u => u.IsDeleted);  

9.9.8 反馈与建议

与我们交流给 Furion 提 Issue